Map是在ES6出现的。所以当TypeScripttargetes5,并且没有在lib中添加ES2015,TypeScript中不能直接用Map。这种情况我们可以使用索引类型模拟。

// key 为 string,value 为 number;
const dic: { [key: string]: number; } = {
    key1: 1,
};

// 添加key,value;
dic['b'] = 2;
dic.c = 3;

// 遍历;
for (const key in dic) {
    if (dic.hasOwnProperty(key)) {
        console.log(dic[key]);
    }
}

关于更多索引类型的内容,可以参考 Ts 文档 高级类型 中的索引类型和字符串索引签名

参考:

  1. TypeScript 中使用字典Dictionary
  2. 高级类型

meteor199
319 声望4 粉丝